package util.estatisticas.metricas;

public class EstimadorVariancia {
	
	private int totalRodadas;
	
	private double soma;
	
	private double somaQuadrado;
	
	public EstimadorVariancia() {
		this.totalRodadas = 0;
		this.soma = 0;
		this.somaQuadrado = 0;
	}
	
	public void atualiza(double xi) {
		this.soma += xi;
		this.somaQuadrado += xi * xi;
		this.totalRodadas++;
	}

	public double getEstimador() {
		double totalRodadasMenosUm = this.totalRodadas - 1;
		
		if (totalRodadasMenosUm <= 0) {
			return 0;
		}
		else {
			double estimador = this.somaQuadrado / (totalRodadasMenosUm);
			estimador -= (this.soma * this.soma) / (this.totalRodadas * totalRodadasMenosUm); 
			
			return estimador;
		}
	} 

}
